<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>volatility.plugins.overlays.basic.String : API documentation</title>
    <meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
    <link href="apidocs.css" type="text/css" rel="stylesheet" />
    
    
  </head>
  <body>
    <h1 class="class">v.p.o.b.String(<a href="volatility.obj.BaseObject.html">obj.BaseObject</a>) : class documentation</h1>
    <p>
      <span id="part">Part of <a href="volatility.html">volatility</a>.<a href="volatility.plugins.html">plugins</a>.<a href="volatility.plugins.overlays.html">overlays</a>.<a href="volatility.plugins.overlays.basic.html">basic</a></span>
      
      <a href="classIndex.html#volatility.plugins.overlays.basic.String">View In Hierarchy</a>
    </p>
    <div>
      
    </div>
    <div>Class for dealing with Strings<table class="fieldTable"></table></div>

    
    
    <div id="splitTables">
      <table class="children sortable" id="id539">
  
  
<tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#__init__">__init__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#proxied">proxied</a></td>
    <td><span>Return an object to be proxied</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#v">v</a></td>
    <td><span>Use zread to help emulate reading null-terminated C strings across page boundaries.</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#__len__">__len__</a></td>
    <td><span>This returns the length of the string</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#__str__">__str__</a></td>
    <td><span>This function ensures that we always return a string from the __str__ method. Any unusual/unicode characters in the input are replaced with ?.</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#__unicode__">__unicode__</a></td>
    <td><span>This function returns the unicode encoding of the data retrieved by .v() Any unusual characters in the input are replaced with ufffd.</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#__format__">__format__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#__cmp__">__cmp__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#__add__">__add__</a></td>
    <td><span>Set up mappings for concat</span></td>
  </tr><tr class="method">
    
    
    <td>Method</td>
    <td><a href="volatility.plugins.overlays.basic.String.html#__radd__">__radd__</a></td>
    <td><span>Set up mappings for reverse concat</span></td>
  </tr>
  
</table>
      
        <p>
          Inherited from <a href="volatility.obj.BaseObject.html">BaseObject</a>:
        </p>
        <table class="children sortable" id="id540">
  
  
<tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#obj_type">obj_type</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#obj_vm">obj_vm</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#obj_offset">obj_offset</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#obj_parent">obj_parent</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#obj_name">obj_name</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#obj_native_vm">obj_native_vm</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#set_native_vm">set_native_vm</a></td>
    <td><span>Sets the native_vm</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#rebase">rebase</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#newattr">newattr</a></td>
    <td><span>Sets a new attribute after the object has been created</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#write">write</a></td>
    <td><span>Function for writing the object back to disk</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__getattr__">__getattr__</a></td>
    <td><span>This is only useful for proper methods (not ones that start with __ )</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__setattr__">__setattr__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__nonzero__">__nonzero__</a></td>
    <td><span class="undocumented">No summary</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__eq__">__eq__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__ne__">__ne__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__hash__">__hash__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#m">m</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#is_valid">is_valid</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#dereference">dereference</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#dereference_as">dereference_as</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#cast">cast</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__repr__">__repr__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#d">d</a></td>
    <td><span>Display diagnostic information</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__getstate__">__getstate__</a></td>
    <td><span>This controls how we pickle and unpickle the objects</span></td>
  </tr><tr class="basemethod">
    
    
    <td>Method</td>
    <td><a href="volatility.obj.BaseObject.html#__setstate__">__setstate__</a></td>
    <td><span class="undocumented">Undocumented</span></td>
  </tr>
  
</table>
      
      
    </div>
    
    
    

    <div class="function">
  <a name="volatility.plugins.overlays.basic.String.__init__">
    
  </a>
  <a name="__init__">
    
  </a>
  <div class="functionHeader">
    
    def
    __init__(self, theType, offset, vm=None, encoding='ascii', length=1, parent=None, profile=None, **kwargs):
    
  </div>
  <div class="functionBody">
    <div class="interfaceinfo">overrides <a href="volatility.obj.BaseObject.html#__init__">volatility.obj.BaseObject.__init__</a></div>
    <div class="undocumented">Undocumented</div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.proxied">
    
  </a>
  <a name="proxied">
    
  </a>
  <div class="functionHeader">
    
    def
    proxied(self, name):
    
  </div>
  <div class="functionBody">
    <div class="interfaceinfo">overrides <a href="volatility.obj.BaseObject.html#proxied">volatility.obj.BaseObject.proxied</a></div>
    <div>Return an object to be proxied<table class="fieldTable"></table></div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.v">
    
  </a>
  <a name="v">
    
  </a>
  <div class="functionHeader">
    
    def
    v(self):
    
  </div>
  <div class="functionBody">
    <div class="interfaceinfo">overrides <a href="volatility.obj.BaseObject.html#v">volatility.obj.BaseObject.v</a></div>
    <div>Use zread to help emulate reading null-terminated C
strings across page boundaries.</p>
<p>&#64;returns: If all bytes are available, return the full string
as a raw byte buffer. If the end of the string is in a page
that isn't available, return as much of the string as possible,
padded with nulls to the string's length.</p>
<p>If the string length is 0, vtop() fails, or the physical addr
of the string is not valid, return NoneObject.</p>
<p>Note: to get a null terminated string, use the __str__ method.<table class="fieldTable"></table></div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.__len__">
    
  </a>
  <a name="__len__">
    
  </a>
  <div class="functionHeader">
    
    def
    __len__(self):
    
  </div>
  <div class="functionBody">
    
    <div>This returns the length of the string<table class="fieldTable"></table></div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.__str__">
    
  </a>
  <a name="__str__">
    
  </a>
  <div class="functionHeader">
    
    def
    __str__(self):
    
  </div>
  <div class="functionBody">
    <div class="interfaceinfo">overrides <a href="volatility.obj.BaseObject.html#__str__">volatility.obj.BaseObject.__str__</a></div>
    <div>This function ensures that we always return a string from the __str__ method.
Any unusual/unicode characters in the input are replaced with ?.</p>
<p>Note: this effectively masks the NoneObject alert from .v()<table class="fieldTable"></table></div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.__unicode__">
    
  </a>
  <a name="__unicode__">
    
  </a>
  <div class="functionHeader">
    
    def
    __unicode__(self):
    
  </div>
  <div class="functionBody">
    
    <div>This function returns the unicode encoding of the data retrieved by .v()
Any unusual characters in the input are replaced with ufffd.<table class="fieldTable"></table></div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.__format__">
    
  </a>
  <a name="__format__">
    
  </a>
  <div class="functionHeader">
    
    def
    __format__(self, formatspec):
    
  </div>
  <div class="functionBody">
    <div class="interfaceinfo">overrides <a href="volatility.obj.BaseObject.html#__format__">volatility.obj.BaseObject.__format__</a></div>
    <div class="undocumented">Undocumented</div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.__cmp__">
    
  </a>
  <a name="__cmp__">
    
  </a>
  <div class="functionHeader">
    
    def
    __cmp__(self, other):
    
  </div>
  <div class="functionBody">
    
    <div class="undocumented">Undocumented</div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.__add__">
    
  </a>
  <a name="__add__">
    
  </a>
  <div class="functionHeader">
    
    def
    __add__(self, other):
    
  </div>
  <div class="functionBody">
    
    <div>Set up mappings for concat<table class="fieldTable"></table></div>
  </div>
</div><div class="function">
  <a name="volatility.plugins.overlays.basic.String.__radd__">
    
  </a>
  <a name="__radd__">
    
  </a>
  <div class="functionHeader">
    
    def
    __radd__(self, other):
    
  </div>
  <div class="functionBody">
    
    <div>Set up mappings for reverse concat<table class="fieldTable"></table></div>
  </div>
</div>
    <address>
      <a href="index.html">API Documentation</a> for Volatility 2.2, generated by <a href="http://codespeak.net/~mwh/pydoctor/">pydoctor</a> at 2013-06-24 15:16:10.
    </address>
  </body>
</html>